package com.atguigu.chaptar6

object $03_CollecionLowFunction {
  //集合计算初级函数
  def main(args: Array[String]): Unit = {
    val list = List(10,2,6,4,3)
    //1.获取最小值
    val min = list.min
    //2.获取最大值
    val max = list.max
    //3.求和
    val sum = list.sum
    val list1 = List("zhangsan 20 300","lisi 15 4000","zhaoliu 30 1500")
    //4.根据指定条件获取最小值
    list1.minBy(_.split(" ")(1).toInt) ;
    //5.根据指定条件获取最大值
    list1.maxBy(_.split(" ")(1).toInt)
    //6.排序
      //1.根据元素本身直接排序[默认升序]
      val list2 = list.sorted;
      //2.根据指定字段排序[默认升序]
    list1.sortBy(_.split(" ")(1).toInt)
      //2.1sortBy还有一个隐式参数,因为他所以默认升序,可以通过匿名子类重写他的方法实现降序
      val ordering = new Ordering[Int]() {
        override def compare(x: Int, y: Int): Int = {
          if (x > y) -1
          else if (x == y) 0
          else 1
        }
      }
    list1.sortBy(_.split(" ")(1).toInt)(ordering)
      //7.根据指定的条件排序 sortWith一般工作不用,因为sortBy就够用了
        //7.1 list.sortWith():降序,list里元素就是Int
    val list3 = list.sortWith(_ > _)
        //7.2 list1.sortWith():list1元素是需要切割的字符串
      val list4 = list1.sortWith((x: String, y: String) => { x.split(" ")(1).toInt > y.split(" ")(1).toInt })
        //7.3  3.2的简写
    val list5 = list1.sortWith(_.split(" ")(1).toInt > _.split(" ")(1).toInt)
  }

}
